package com.lechi.web.common.alarm;


import lombok.Data;

/**
 * 告警规则策略模版
 */
@Data
public abstract class AlarmRuleStrategy {

    /**
     * 告警类型
     */
    private String alarmType;

    /**
     * 告警名称
     */
    private String alarmName;

    /**
     * 所属传感器的 观测要素ID号
     */

    private Long sensorAliasId;

    /**
     * 触发器状态
     */

    private Integer status;

    /**
     * 阈值，比较的基准值
     */
    private Integer aboveX;

    /**
     * 阈值，比较的基准值
     */
    private Integer belowY;

    /**
     * 消息模板内容
     */
    private String msgTemplate;

    /**
     * 持续时间 分钟
     */
    private Integer durationTime;

    public abstract boolean ifAlarm(double monitorVal);

    public boolean ifOutTime(Long durationTime) {
        return durationTime > getDurationTime() * 60;
    }
}
